#define _CRT_SECURE_NO_WARNINGS 1

//题目：输入两个正整数m和n，求其最大公约数和最小公倍数。

#include <stdio.h>

int main(void)
{
	//定义输入的两个正整数
	int a = 0;
	int b = 0;
	int temp = 0;

	//打印时使用
	int c = 0;
	int d = 0;

	//定义最大公约数
	int maxCommonNumber = 0;

	//定义最小公倍数
	int minCommonNumber = 0;

	printf("请输入两个正整数，以空格隔开：");
	scanf("%d%d", &a, &b);

	printf("\r\n");

	//保证a>b
	if (a > b)
	{
	}
	else
	{
		temp = a;
		a = b;
		b = temp;
	}

	//打印赋值，方便打印
	c = a;
	d = b;

	//辗除法。
	//思路：a%b =c,b%c =d，...,一直循环，直至为0
	do
	{
		if (b != 0)
		{
			a = a % b;

			if (a != 0)
			{
				b = b % a;
			}
		}
	} while (a != 0 && b != 0);

	//最大公约数为a,b中非零的
	maxCommonNumber = (a == 0) ? b : a;

	//最大公倍数为二者相乘，再除以最大公约数
	minCommonNumber = c * d / maxCommonNumber;

	printf("%d %d的最大公约数为：%d \r\n", c, d, maxCommonNumber);
	printf("\r\n");
	printf("最小公倍数为：%d \r\n", minCommonNumber);
	return 0;
}

